
import _axios, { get, put, _delete } from '@/lin/plugin/axios'

// 我们通过 class 这样的语法糖使模型这个概念更加具象化，其优点：耦合性低、可维护性。
class Account {
  // 类中的方法可以代表一个用户行为
  async createInsAccount(data) {
    return _axios({
      method: 'post',
      url: 'v1/account',
      data,
    })
  }

  // 在这里通过 async await 语法糖让代码同步执行
  // 1. await 一定要搭配 async 来使用
  // 2. await 后面跟的是一个 Promise 对象
  async getInsAccount(id) {
    const res = await get(`v1/account/${id}`)
    return res
  }

  async getCountByStatus() {
    console.log(2)
    const res = await get(`v1/account/count`)
    console.log(res)
    return res
  }

  async editInsAccount(id, info) {
    const res = await put(`v1/account/${id}`, info)
    return res
  }

  async reloadAccountInfo(id) {
    const res = await put(`v1/account/reload/${id}`)
    return res
  }

  async deleteInsAccount(id) {
    const res = await _delete(`v1/account/${id}`)
    return res
  }

  async deleteAccountFrozen() {
    const res = await _delete(`v1/account/delete`)
    return res
  }

  async deleteAccountEx() {
    const res = await _delete(`v1/account/delete_ex`)
    return res
  }

  async getInsAccounts(page = 0,count = 10) {
    const res = await get('v1/account/page',{page,count})
    return res
  }

  async search({ status, page, count }) {
    const res = await get('v1/account/search', {
      count,
      page,
      status
    })
    return res
  }
}
export default new Account()